#ifndef _BEREMIZ_H_
#define _BEREMIZ_H_

#include "iec_types_all.h"
#include "iec_std_lib.h"
#include "accessor.h"
#include "plc_rte_abi.h"
#define LOG_LEVELS 4
#define LOG_CRITICAL 0
#define LOG_WARNING 1
#define LOG_INFO 2
#define LOG_DEBUG 3

#ifdef USE_MC
#include "plc_open.h"
#include"MotionFB_Def.h"
#endif

extern unsigned long long common_ticktime__;


#ifdef __cplusplus
extern "C"{
#endif
#ifdef TARGET_LOGGING_DISABLE
static inline int LogMessage(uint8_t level, char* buf, u32 size)
{
    (void)level;
    (void)buf;
    (void)size;
    return 0;
}
#else

int LogMessage(uint8_t level, char *buf, u32 size);

#endif

long AtomicCompareExchange(long *atomicvar, long compared, long exchange);
u8 fast_input(u8 a,u8 b,u8 c,u8 d,u8 e);
void fast_output(u8 a,u8 b,u8 c,u8 d,u8 e,u8);
#ifdef __cplusplus
}
#endif

#endif
